渋谷区 ハッピーマザー出産助成金
MVPとしての雑な実装の流れyuiseki.icon
準備(重要)
!!!GitHub上で、Forkしたリポジトリで、yuiseki/OpenFisca-Yuisekinのupstreamの変更をfetchする!!!
https://gyazo.com/cc0e6a7f79b6d6ca27d6dc6225aebef3
!!!VSCodeで、同期マークhttps://gyazo.com/71eb8eae2ba406480bee6aebeb027d82をおして、ローカル開発環境にもForkしたリポジトリの変更をfetchする!!!
上記ができたら、作業を開始
GitのBranchを作る
main branchから派生して、渋谷区/ハッピーマザー出産助成金というbranchを作る
https://gyazo.com/8032c48b257ceecb6e81400d8fed4395
https://gyazo.com/07f99069a53b695730ee957cdff68e1e
この時点でdocker compose run --rm openfisca bash -c "make build && make test"を実行してみる……
何も変更していないので、テストは通るはずであることを確認
この時点で、やたらと細かい制度の条件は、一旦すべて無視する
https://gyazo.com/7155c953dcd6d284fab7db1621ca1957
渋谷区は、出産した人に最大10万円給付すると決まっている(ただし健康保険出産付加給付があったら控除する)らしいので、とにかくそう書く
testsに出産と育児というフォルダは無いはずなので作って下さい
code:openfisca_yuisekin/tests/福祉/ハッピーマザー出産助成金.yaml
- name: 渋谷区で出産した健康保険出産付加給付が無い人へのハッピーマザー出産助成金
period: 2022-06
input:
最終出産年月日: 2022-06-25
健康保険出産付加給付: 0
output:
ハッピーマザー出産助成金: 100000
- name: 渋谷区で出産した健康保険出産付加給付が有る人へのハッピーマザー出産助成金
period: 2022-06
input:
最終出産年月日: 2022-06-25
健康保険出産付加給付: 10000
output:
ハッピーマザー出産助成金: 90000
このテストを書いた時点で最低でも以下が必要なことがわかる
最終出産年月日というこれまでにない概念の追加が必要
健康保険出産付加給付というこれまでにない概念の追加が必要
ハッピーマザー出産助成金というこれまでにない概念の追加が必要
この時点でdocker compose run --rm openfisca bash -c "make build && make test"を実行してみる……
上記のテストを新たに追加したことで、テストは落ちるはずであることを確認
以下で実装をしていく
openfisca_yuisekin/parameters/福祉/出産/ハッピーマザー出産助成金/金額.yamlに、結局いくら貰えるのかを先に書いておく
いろいろな条件を満たしたらとにかく最大10万円貰えるらしいのでそう書いておく
parametersに福祉/出産というフォルダは無いはずなので作って下さい
code:openfisca_yuisekin/parameters/福祉/出産/ハッピーマザー出産助成金/金額.yaml
description: ハッピーマザー出産助成金制度の金額
metadata:
unit: currency-JPY
values:
2022-05-01:
value: 100000
metadata:
openfisca_yuisekin/variables/福祉/出産.pyに、最終出産年月日と健康保険出産付加給付、そしてハッピーマザー出産助成金を定義する
variablesに福祉というフォルダは無いはずなので作って下さい
code:openfisca_yuisekin/variables/福祉/出産.py
from datetime import date
from openfisca_core.holders import set_input_divide_by_period
from openfisca_core.periods import MONTH
from openfisca_core.variables import Variable
from openfisca_yuisekin.entities import 人物
class 最終出産年月日(Variable):
value_type = date
entity = 人物
definition_period = MONTH # 毎月出産する人はいないはず
label = "人物の最終出産年月日"
class 健康保険出産付加給付(Variable):
value_type = float
entity = 人物
definition_period = MONTH
set_input = set_input_divide_by_period
label = "健康保険出産付加給付"
class ハッピーマザー出産助成金(Variable):
value_type = float
entity = 人物
definition_period = MONTH
set_input = set_input_divide_by_period
label = "ハッピーマザー出産助成金"
documentation = "出産時の経済的負担の軽減を図り、安心して出産ができるよう、出産した人にハッピーマザー出産助成金を支給します。"
def formula(対象人物, 対象期間, parameters):
return parameters(対象期間).福祉.出産.ハッピーマザー出産助成金.金額 - 対象人物("健康保険出産付加給付", 対象期間)
docker compose run --rm openfisca bash -c "make build && make test"を実行してみる
テストに加えて適切な実装を追加したので、テストは通るはずであることを確認
Forkしたリポジトリの渋谷区/ハッピーマザー出産助成金Branchからyuiseki/OpenFisca-YuisekinへPull requestを発行する
----- ----- 以下は制度の完璧な条件の書き下し ----- -----
変数:型(福祉.pyに記載)
作成先:
variables/福祉.py
妊娠期間:date
出産日:date
申請日:date
住民登録有無:boolean
健康保険加入有無:boolean
出産人数:int
助成限度額:int ※固定値でもいいかも?:100000
申請期間:date
実体(式)※お作法は見ながら整理
これらは実体ではなくparamaterに当たると思いますyuiseki.icon
作成先:
paramaters/ハッピーマザー助成金/*.yaml
妊娠期間が12週を超えている
paramaters/ハッピーマザー助成金/妊娠期間.yaml
妊娠期間 >= 85
出産日の3か月前から申請日(=現在)まで継続して区内に住民登録がある
SYSDATE- 90 <= 出産日 <= SYSDATE
and 住民登録有無 = Y
健康保険に加入している
健康保険加入有無 = Y
出産日から起算して1年以内
出産日 <= 365
インプット
作成先:
parameters/福祉/ハッピーマザー出産助成金 ※フォルダ作る
これらがvariablesにあたりますyuiseki.icon
variables/出産.py とかに記述するとよさそう?
妊娠期間
出産日
申請日(SYSDATEでも)
住民登録有無
健康保険加入有無
出産人数
これがvariablesにあたります
アウトプット(.yamlに記載):作成先:tests/situations/ハッピーマザー出産助成金.yaml
受けられる助成限度額(出産人数 * 助成限度額)